package com.example.test.operate.dao;

import com.example.test.operate.POJO.PO.OperateFunctionPO;
import com.example.test.operate.POJO.VO.OperateFunctionVO;
import com.example.test.operate.abstracts.IAbstractBaseDao;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * <desc>
 *   运营系统菜单资源数据访问接口
 * </desc>
 *
 * @createDate 2021-07-22
 */
@Mapper
@Repository
public interface IOperateFunctionDao extends IAbstractBaseDao<OperateFunctionPO> {


    /**
     * <desc>
     *      根据父节点id获取子节点集合
     * </desc>
     *
     * @param functionId 资源id
     * @param type 1列表 2权限
     * @return 子级结果数据集
     * @author
     * @createDate
     */
    List<OperateFunctionVO> getChildsByParent(@Param("functionId") String functionId, @Param("type") Integer type);
    /**
     * <desc>
     *      通过角色id获取该角色拥有的所有节点
     * </desc>
     * @param roleId 角色id
     * @return
     * @author
     * @createDate
     */
    List<String> getRoleFunctions(@Param("roleId") String roleId);
    /**
     * <desc>
     *      通过角色id删除该角色拥有的所有节点
     * </desc>
     *
     * @param roleId 角色id
     * @return
     * @author
     * @createDate
     */
    Integer deleteRoleFunctions(@Param("roleId") String roleId);
}
